﻿BEGIN;
	-- tablas de atributos
	CREATE TABLE usuario (
		id varchar(50) PRIMARY KEY, --es el mail 
		sobremi varchar(50),
		profesion varchar(50),
		nombre varchar(50),
		imagen varchar(128),
		casa varchar(30),
		contrasena char(15)
	);
	CREATE TABLE circulo (
		id int PRIMARY KEY,
		nombre varchar(20)
	);
	CREATE TABLE publicacion(
		id int PRIMARY KEY,
		publicador varchar(20) REFERENCES usuario(id),
		fecha date,
		contenido varchar(40)
	);
	CREATE TABLE texto (
		tabla_texto_id int PRIMARY KEY,
		id int REFERENCES publicacion(id)
	);
	CREATE TABLE album (
		tabla_album_id int PRIMARY KEY,
		id int REFERENCES publicacion(id),
		nombre varchar(50)
	);
	CREATE TABLE foto (
		tabla_foto_id int PRIMARY KEY,
		id int REFERENCES publicacion(id),
		--chequeo de integridad: que la publicacion album esté en los pubid de album
		album int REFERENCES publicacion(id), 
		imagen varchar(50)
	);
	CREATE TABLE comentario (
		id int PRIMARY KEY,
		fecha date,
		texto varchar(140),
		publicacion int REFERENCES publicacion(id),
		comentador varchar(20) REFERENCES usuario(id)
	);
	
	-- tablas multivaloradas
	CREATE TABLE estudio(
		tabla_estudio_id int PRIMARY KEY,
		estudiante varchar(30) REFERENCES usuario(id),
		contenido char(50)
	);
	--vinculos a otras paginas
	CREATE TABLE vinculo (
		tabla_vinculo_id int PRIMARY KEY,
		vinculado varchar(20) REFERENCES usuario(id),
		contenido varchar(50)
	);
	CREATE TABLE lugar (
		tabla_lugar_id int PRIMARY KEY,
		habitante varchar(20) REFERENCES usuario(id),
		contenido char(50)
	);
	CREATE TABLE trabajo (
		tabla_trabajo_id int PRIMARY KEY,
		trabajador varchar(20) REFERENCES usuario(id),
		descripcion char(50)
	);
	-- +1's a links
	CREATE TABLE masuno_links(
		tabla_masunoL_id int PRIMARY KEY,
		persona varchar(20) REFERENCES usuario(id),
		url char(50)
	);
	CREATE TABLE etiqueta(
		tabla_etiqueta_id int PRIMARY KEY,
		publicacion int REFERENCES publicacion(id),
		contenido varchar(15)
	);

	CREATE TABLE usuario_en_circulo(
		tabla_usencirc_id int PRIMARY KEY,
		persona varchar(20) REFERENCES usuario(id),
		circulo int REFERENCES circulo(id)
	);

	CREATE TABLE creador_circulo (
		tabla_creadorencirc_id int PRIMARY KEY,
		creador varchar(20) REFERENCES usuario(id),
		circulo int REFERENCES circulo(id)
	);

	CREATE TABLE masuno_publicacion(
		tabla_masunopubl_id int PRIMARY KEY,
		persona varchar(20) REFERENCES usuario(id),
		publicacion int REFERENCES publicacion(id)
	);

	CREATE TABLE destinatarios_publicacion(
		tabla_destpubl_id int PRIMARY KEY,
		destinatario varchar(20) REFERENCES usuario(id),
		publicacion int REFERENCES publicacion(id)
	);

	CREATE TABLE circulos_publicacion(
		tabla_circpubl_id int PRIMARY KEY,
		circulo_destinatario int REFERENCES circulo(id),
		publicacion int REFERENCES publicacion(id)
	);
	 
END;
 